package com.ljf.daily.consumptiondetail.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ljf.common.model.BasisModel;
import com.ljf.daily.consumptiondetail.enums.DailyDatConsumptionDetailStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 日常消费明细对象  daily_dat_consumption_detail
 *
 * @author LJF
 * @since 2024-05-10
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("日常消费明细")
@EqualsAndHashCode(callSuper = true)
@TableName("daily_dat_consumption_detail")
public class DailyDatConsumptionDetail extends BasisModel {

	private static final long serialVersionUID = 1L;

	/**
	 * Java类型: Long
	 * 数据库类型: bigint
	 * 注释: ID
	 * {@link DailyDatConsumptionDetail#COL_ID}
	 */
	@JsonProperty("id")
	@ApiModelProperty(value = "ID")
	@TableId(value="id", type= IdType.AUTO)
	private Long id;

	/**
	 * Java类型: Date
	 * 数据库类型: date
	 * 注释: 归属时间
	 * {@link DailyDatConsumptionDetail#COL_BELONG_DATE}
	 */
	@TableField("belong_date")
	@JsonProperty("belongDate")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@ApiModelProperty(value = "归属时间")
	private Date belongDate;

	/**
	 * Java类型: BigDecimal
	 * 数据库类型: decimal(8,2)
	 * 注释: 计划金额
	 * {@link DailyDatConsumptionDetail#COL_PLANNED_AMOUNT}
	 */
	@TableField("planned_amount")
	@JsonProperty("plannedAmount")
	@ApiModelProperty(value = "计划金额")
	private BigDecimal plannedAmount;

	/**
	 * Java类型: BigDecimal
	 * 数据库类型: decimal(8,2)
	 * 注释: 当天结余
	 * {@link DailyDatConsumptionDetail#COL_DAY_BALANCE}
	 */
	@TableField("day_balance")
	@JsonProperty("dayBalance")
	@ApiModelProperty(value = "当天结余")
	private BigDecimal dayBalance;

	/**
	 * Java类型: BigDecimal
	 * 数据库类型: decimal(8,2)
	 * 注释: 总结余
	 * {@link DailyDatConsumptionDetail#COL_TOTAL_BALANCE}
	 */
	@TableField("total_balance")
	@JsonProperty("totalBalance")
	@ApiModelProperty(value = "总结余")
	private BigDecimal totalBalance;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(20)
	 * 注释: 分配金额
	 * {@link DailyDatConsumptionDetail#COL_ALLOCATION_AMOUNT}
	 */
	@TableField("allocation_amount")
	@JsonProperty("allocationAmount")
	@ApiModelProperty(value = "分配金额")
	private String allocationAmount;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(50)
	 * 注释: 备注
	 * {@link DailyDatConsumptionDetail#COL_REMARK}
	 */
	@TableField("remark")
	@JsonProperty("remark")
	@ApiModelProperty(value = "备注")
	private String remark;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint(1)
	 * 注释: 状态(0:未完成;1:已完成)
	 * {@link DailyDatConsumptionDetail#COL_STATUS}
	 * {@link DailyDatConsumptionDetailStatusEnum}
	 */
	@TableField("status")
	@JsonProperty("status")
	@ApiModelProperty(value = "状态(0:未完成;1:已完成)")
	private Integer status;


	/**
	 * ID
	 * {@link DailyDatConsumptionDetail#id}
	 */
	public static final String COL_ID = "id";
	/**
	 * 归属时间
	 * {@link DailyDatConsumptionDetail#belongDate}
	 */
	public static final String COL_BELONG_DATE = "belong_date";
	/**
	 * 计划金额
	 * {@link DailyDatConsumptionDetail#plannedAmount}
	 */
	public static final String COL_PLANNED_AMOUNT = "planned_amount";
	/**
	 * 当天结余
	 * {@link DailyDatConsumptionDetail#dayBalance}
	 */
	public static final String COL_DAY_BALANCE = "day_balance";
	/**
	 * 总结余
	 * {@link DailyDatConsumptionDetail#totalBalance}
	 */
	public static final String COL_TOTAL_BALANCE = "total_balance";
	/**
	 * 分配金额
	 * {@link DailyDatConsumptionDetail#allocationAmount}
	 */
	public static final String COL_ALLOCATION_AMOUNT = "allocation_amount";
	/**
	 * 备注
	 * {@link DailyDatConsumptionDetail#remark}
	 */
	public static final String COL_REMARK = "remark";
	/**
	 * 状态(0:未完成;1:已完成)
	 * {@link DailyDatConsumptionDetail#status}
	 */
	public static final String COL_STATUS = "status";

}
